草庐IT

java - 从Java将变量插入SQL查询

全部标签

ruby-on-rails - 是否可以在 ruby​​ 中取消定义变量?

在ruby​​中,有没有办法在变量或常量定义后“取消定义”?在我们的rails环境中,我们将三个常量之一定义为true,具体取决于环境:TESTING、DEVELOPMENT或生产。然后,在Controller代码中,我们使用defined?来查看我们是否处于什么环境中,即:defined?制作。现在,我想对某些特定于环境的行为进行单元测试。我最初的尝试是在我的测试中设置适当的常量,然后在拆卸时重置它们。但是,我不知道如何重置DEVELOPMENT和PRODUCTION以便defined?返回false。显然,解决方案是除了检查适当的常量是否已定义之外,还检查它是否也为真,但这将导致不

ruby-on-rails - 如何使用 searchkick 进行逻辑运算的复杂查询

我正在使用searchkick库作为产品搜索的elasticsearch客户端。https://github.com/ankane/searchkick可以创建'OR'条件和'AND'条件;AND运算Product.search其中:{price:{lte:200},in_stock:true}或运算Product.search其中:{或:[[{in_stock:true},{backordered:true}]]}但我坚持使用searchkick创建多个“AND”“OR”条件。我需要类似的东西A或B或(C和D)或者我需要这样,A与B与(C或D)请指导我,如何实现这一目标谢谢

sql - 不同的加入 Rails

视频有很多事件我正在尝试获取所有在未来安排了事件的视频。我已经有了这个:named_scope:scheduled_in_future,:joins=>:event,:conditions=>["event.scheduled_start>?ANDevent.status=?",Time.now.to_i,'PENDING']这行得通,但如果同一个视频在未来有多个事件,它会给我重复的视频记录。当然,我可以遍历数组并清除重复项,但必须有一种SQL方法才能做到这一点。我尝试添加一个:select=>"DISTINCT(video.id)"但它只返回ID字段而不是整个记录。

sql - 如何使用 Arel 正确地向带有 'or' 和 'and' 子句的 SQL 查询添加括号?

我正在使用RubyonRails3.2.2,我想生成以下SQL查询:SELECT`articles`.*FROM`articles`WHERE(`articles`.`user_id`=1OR`articles`.`status`='published'OR(`articles`.`status`='temp'AND`articles`.`user_id`IN(10,11,12,)))通过使用Arel这样Article.where(arel_table[:user_id].eq(1).or(arel_table[:status].eq("published")).or(arel_tab

sql - Rails 3 Sum 两个领域的产品

我需要计算我的Rails3应用中两个字段的乘积之和(即相当于Excel的sumproduct函数)。Rails中是否有一种方法可以帮助解决这个问题?如果没有,那么使用自定义sql的Rails代码是什么?例如,酒店有很多房间。房间具有sqft(平方英尺)、数量(该尺寸)和hotel_id的属性。我想计算给定酒店中所有房间的总平方英尺。在SQL中,对于Hotel.id=8,我相信以下语句会起作用:selectsum(rooms.sqft*rooms.quantity)asSumSqftfromroomsinnerjoinhotelsonrooms.hotel_id=hotels.idwhe

ruby-on-rails - 如何在 Rails Controller 操作的 RSpec 测试中指定查询字符串?

我有一个名为yearly_csv的操作。在此操作中,我执行两个操作,如需求和供应。defyearly_csvifdemand=='true'demand_csvelsesupply_csvendend我的View中有两个单选按钮来选择其中一个操作。现在我想在RSpec中单独测试每个操作。例如,一个供应规范和另一个需求规范。我的问题是如何将单选按钮值传递给yearly_csv操作(get)? 最佳答案 在RSpec的较新版本中,您必须使用params键声明查询字符串参数:get:yearly_csv,params:{demand:'t

sql - 在 Rails 中进行计数的正确方法是什么?

我有一个包含以下许多代码片段的Rails应用程序:Ouractivecommunityof我的问题是,这是计算观看次数的正确方法吗?看起来很“肮脏”,有没有更粗鲁的方法来计算?我可能在考虑命名范围,但我只是想确保这些类型的东西不会对性能产生更大的影响。谢谢你, 最佳答案 您不需要名称范围来执行计数。Account.where(:admin=>false).count但是命名作用域是使您的代码更具可重用性的绝佳方式。命名范围不会对您的应用程序产生任何明显的性能影响。 关于sql-在Rail

ruby-on-rails - 如何在不使用不同变量名的情况下更新 Rails 模型中实例方法中的属性?

我想在rails的实例方法中更新属性,而不必被迫更改传入的参数,这样我就可以利用rails的自动属性。这是一个例子。理想:status="some_new_status"person.update(status)classPerson我现在要做的:classPerson我明白在这个例子中这并不重要。但是,当我有复杂的更新方法时,如果我可以删除其中的一些代码,它会更清晰。 最佳答案 你应该使用内置的Rails方法:@person.update_attribute(:status,"SomeValue")#nocallbacktrigg

ruby - 如何在 Ruby 数组的所有元素之间插入一个新元素?

我有一个数组,想在所有元素之间插入一个新元素,类似于join方法。例如,我有[1,[],"333"]我需要的是[1,{},[],{},"333"]请注意,在所有元素之间插入了一个新的空散列。编辑:目前我拥有的是:irb(main):028:0>a=[1,[],"333"]=>[1,[],"333"]irb(main):029:0>a=a.inject([]){|x,y|x[1,{},[],{},"333",{}]irb(main):030:0>a.pop=>{}irb(main):031:0>a=>[1,{},[],{},"333"]irb(main):032:0>我想知道最好的方法。

ruby-on-rails - Ruby on Rails - 缓存变量

我在Controller中设置了这两个变量。我如何缓存它们,这样它们就不会每次都与数据库通信,而只是第一次。@tablenutrients=Nutrient.find(:all)@columnnutrients=@tablenutrients.collect{|x|x.nutrient} 最佳答案 @djlumley说的。一般也可以配置使用ActiveSupport::Cache::Store显式存储您自己的自定义变量。然后您可以获取/设置缓存值,例如,像这样:@tablenutrients=Rails.cache.fetch("t